home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2 Examples.sit
/
Raven 1.2 Examples
/
Quill
/
Source
/
WindowPicker.cpp
< prev
next >
Wrap
Text File
|
1997-08-26
|
3KB
|
100 lines
/*
* File: WindowPicker.cpp
* Function: A dialog that lets the user pick which window type he wants to create.
* Written by: Jesse Jones
*
* Copyright ゥ 1996 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <-> 12/24/96 JDJ Created
*/
#include "WindowPicker.h"
#include <ZApplication.h>
#include <ZDialogHandler.h>
#include "DialogBoxProxy.h"
#include "DocWindowProxy.h"
#include "ToolWindowProxy.h"
#include "WindowProxy.h"
// ===================================================================================
// Global Functions
// ===================================================================================
//---------------------------------------------------------------
//
// PickWindow
//
//---------------------------------------------------------------
TWindow* PickWindow(MCommander* superCommander)
{
TWindow* window = nil;
TDialogBox* dialog = dynamic_cast<TDialogBox*>(TDialogBox::Create(200, TApplication::Instance()));
static short value = 1;
TControl* popup = dynamic_cast<TControl*>(dialog->FindSubPane("Picker"));
popup->SetValue(value);
string message = kNothingMessage;
{
TDialogHandler handler(dialog);
dialog->Show();
while (message != kCancelMessage && message != kOKMessage) {
message = handler.ProcessNextEvent();
if (message == kOKMessage)
value = popup->GetValue();
}
}
if (message == kOKMessage) {
switch (value) {
case 1: // TWindow
{
SWindowAttr attr(kRegularLayer);
SPaneInfo paneInfo("", TRect(32, 32, 256+32, 256+32));
SWindowInfo windInfo(paneInfo, attr);
window = new CWindowProxy(windInfo, superCommander);
}
break;
case 2: // TDocWindow
{
SWindowAttr attr(kRegularLayer);
SPaneInfo paneInfo("", TRect(32, 32, 256+32, 256+32));
SWindowInfo windInfo(paneInfo, attr);
window = new CDocWindowProxy(windInfo, superCommander);
}
break;
case 3: // TToolWindow
{
SWindowAttr attr(kFloatingLayer);
SPaneInfo paneInfo("", TRect(32, 32, 256+32, 256+32));
SWindowInfo windInfo(paneInfo, attr);
window = new CToolWindowProxy(windInfo, superCommander);
}
break;
case 4: // TDialogBox
{
SWindowAttr attr(kModalLayer);
SPaneInfo paneInfo("", TRect(32, 32, 256+32, 256+32));
SWindowInfo windInfo(paneInfo, attr);
window = new CDialogBoxProxy(windInfo, superCommander);
}
break;
}
}
return window;
}